Skip to content

feat(*): Skill 优化 + Eval 管线 + 架构治理#8

Merged
arch-team merged 72 commits intomainfrom
feature/skill-optimization
Mar 23, 2026
Merged

feat(*): Skill 优化 + Eval 管线 + 架构治理#8
arch-team merged 72 commits intomainfrom
feature/skill-optimization

Conversation

@arch-team
Copy link
Copy Markdown
Owner

Summary

  • eval/ 管线重构:从单文件拆分为 core/trigger/regression/behavior/review 五个子包,新增行为评估引擎(fixture 环境 + G1/G2/G3 三级评分)、with/without 基准对比、盲测 A/B 比较、HTML Dashboard 和交互式 Viewer、结构化反馈系统、断言质量分析器
  • knowledge/ 重组:_schema/ 分为 entity/process/integration/auxiliary 四子目录,新增 _signals/、_guides/、_extraction/ 子目录,建立 Schema README 索引
  • rules/ 信息架构:新增 harness-engineering、ia-principles-details、product-architecture、plugin-spec 四个始终加载规则文件,总始终加载 token 通过分拆降低
  • skills/ 质量提升:pace-biz 多轮 eval 驱动优化、pace-help 统一帮助入口、GC 机制优化(衰减冻结 + prune 子命令)、description CSO 对齐
  • hooks/ 合规:HE-4 全量合规(ACTION 指令格式)、forced skill evaluation hook
  • tests/ 扩展:8 个新静态测试模块(组件隔离、Agent 可读性、Token 预算、Iron Rule 映射等),eval 质量门测试
  • 代码简化:最后一轮 simplify 消除重复代码、修复 report.py CSS class bug、清理死代码,净减少 52 行

Test plan

  • python3 -m pytest tests/static/ -v — 109 个静态测试全部通过
  • python3 -c "import eval; ..." — 所有模块导入验证通过
  • python3 -m eval trigger --skill pace-dev --smoke — 触发评估冒烟测试
  • python3 -m eval behavior --skill pace-dev --smoke — 行为评估冒烟测试(需 fixture 环境)
  • bash dev-scripts/validate-all.sh — 全量 Harness 验证

🤖 Generated with Claude Code

arch-team and others added 30 commits March 16, 2026 12:32
5 项增量优化:
- description 从 425→236 字符(IA-5 合规),紧凑斜杠格式 + 补齐 6 个缺失触发词
- SKILL.md 新增 lite 模式子命令可用性表,7 个 procedures Step 0 精简为引用句
- biz-procedures-output.md(16 行碎片)内联到 SKILL.md 输出章节后删除
- epic Step 3 MoS 补充向后兼容说明(不强制双维度分类)
- discover Step 0 补充 7 天会话时效检查

文件数 12→11,总行数 1490→1472,全量验证通过(480 tests + lint + plugin loading)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- .claude/CLAUDE.md: 权威文件索引新增 eval/ 评估工具条目
- .gitignore: 排除 .claude/auto-memory symlink
- docs/plans/: 新增 cognitive-load-optimization 和 pace-biz-optimization-evaluation 分析报告
- docs/scratch/prompt-notes.md: 跨会话思考笔记更新

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- readiness-score.md 追加成熟度标签映射(骨架级/基本级/详细级/就绪级)
- SKILL.md 空参引导增加 Process Model 阶段判断逻辑
- refine 输出增加成熟度标签展示 + L2 反馈循环路由
- align 建议段分为前进/回退 + L3 回退路由决策表
- discover/import/infer Step 6 统一使用成熟度分布统计
- view 全景视图 BR 行追加成熟度标签

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
_schema/ 24 文件按功能域分入 4 个子目录:
- entity/: 价值链实体 (cr/br/pf/epic/obj/opportunity/vision/project/insights)
- process/: 流程与工作流 (checks/iteration/release/state/test-*)
- integration/: 外部集成 (integrations/sync-mapping)
- auxiliary/: 辅助支撑 (context/risk/incident/adr/accept-report/readiness-score/merge-strategy)

knowledge/ 根目录 7 文件按通用与专用分离分入 3 个子目录:
- _signals/: signal-priority, signal-collection(信号路由)
- _guides/: output-guide, checks-guide, experience-reference, teaching-catalog(操作指南)
- _extraction/: entity-extraction-rules, prioritization-methods(提取规则)
- 保留根目录: theory.md, metrics.md, role-adaptations.md(高 fan-in 通用文件)

文档增强:
- 新增 _schema/README.md 索引(含 fan-in 数据和消费者列表)
- 9 个高 fan-in 文件添加 Consumers 注脚
- 孤立文件标注 (incident-format/obj-format/vision-format)
- 新增 skills/workspace-convention.md

全项目引用同步(~120 处):
- 产品层: skills/, rules/, knowledge/, hooks/, dev-scripts/
- 开发层: .claude/rules/, .claude/references/, docs/
- 测试层: tests/ (含 conftest.py SCHEMA_FILES 重构、6 个测试文件路径适配)
- 修复 TC-SYN-11 被静默 skip 的路径断链

验证: 463 passed, 0 failed, 17 skipped

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- sync-checklists.md: 新增 biz-analysis-models.md 模型定义变更清单
  (Process/Data/Discovery/Quality Model 四组共 11 个下游检查项)
- pace-biz-model-design.md: 标注差距 1/2/3 实施进展状态

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- metrics.md: 业务价值对齐指标添加 Quality Model 维度映射注释和 QM 维度列
- biz-procedures-align.md: 趋势表 "MoS 完整性"→"MoS 定义率"消歧,
  新增 "MoS 达成度" 和 "价值链完整率" 两列对齐 metrics.md 指标定义,
  趋势对比段和报告模板同步更新

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
biz-analysis-models.md 是 docs/research/ 下的开发层研究文档,
不应在 sync-checklists.md 中建立到产品层文件的同步链路(违反分层独立原则)。

变更:
- sync-checklists.md:移除"biz-analysis-models.md 模型定义变更清单"整段(-23 行)
- pace-biz-model-design.md:差距 1 状态标记为"不适用"并注明原因
- progress.md:修正 teaching-catalog.md 路径为 knowledge/_guides/ 前缀

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Rules 保留"什么条件下做什么"(触发条件+铁律+行为摘要),将"具体怎么做"
(执行细节、路由表、架构说明)迁出到按需加载的 procedures/knowledge 文件,
每次会话节省 ~2.7K token。

迁出内容:
- §2 Hook 架构 → knowledge/_guides/hook-architecture.md(新建)
- §2 简化审批条件 → dev-procedures-gate.md
- §2 上下文加载+探索连续模式 → dev-procedures-common.md
- §8 渐进丰富 7 条 → project-format.md
- §10 风险感知+跨Skill集成 → guard-procedures-common.md
- §11 导航路由表 → knowledge/_guides/navigation-guide.md(新建)
- §15 教学触发表 → 删除冗余(teaching-catalog.md 已为权威源)
- §16 规则协调 → sync-procedures-push-advanced.md

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…ls/ 反向引用

- cr-format.md: 6 处填充规则→验证约束("规则"→"约束"/"写入条件")
- theory.md: 5 处 skills/ 路径→/pace-xxx Skill 命令名
- signal-priority.md: 修改协议泛化,移除 skills/ 文件列表
- signal-collection.md: 2 处脚本路径泛化为描述性引用
- output-guide.md: 删除冗余"详见 SKILL.md"
- navigation-guide.md: skills/ 路径→/pace-next 命令引用
- iteration-format.md: 模板路径→/pace-init 命令引用
- test-strategy-format.md: procedures 路径→/pace-test strategy 子命令引用

IA-1 验证: grep -r "skills/" knowledge/ 返回空,463 tests passed

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
三个高频非 fork Skill 改为 context: fork + agent: pace-analyst:
- pace-pulse(自动触发):SKILL.md + procedures 不再注入主上下文,预期 -95%/次
- pace-next(高频查询):信号分析在子 agent 完成,主上下文仅收推荐结果
- pace-status(高频查询):状态采集在子 agent 完成,主上下文仅收格式化结果

密集会话预期降幅 -35~45% token(53-70K → 34-40K)

同步更新 rules/devpace-rules.md §13.5 fork Skill 列表

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- product-architecture.md §1: 六层栈完整定义→引用 plugin-info-layers.md(-17 行)
- product-architecture.md §1.3: 契约协作 ASCII 图→引用 info-architecture.md §10
- product-architecture.md §4: 添加权威来源标注
- architecture-details.md §A: Skill 目录结构→引用 plugin-dev-spec.md §0(-30 行)
- architecture-details.md §E: 加载策略/预算表→引用 info-architecture.md §5

每条信息保持唯一权威源,派生处以"详见 X"引用。

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
….md 索引条目

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
retro-procedures-mid.md Line 28 遗漏了 verifying 和 released 两个状态,
导致中期检查时这两个状态的 CR 不会被计入统计。

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
cr-format.md (442→433 行):
- 移除已在 Skill procedures 中有权威定义的过程行为描述(共 9 行)
  - 验收条件格式的自动生成/Gate 2 比对规则(权威源: dev-procedures-intent)
  - 歧义标记的自动添加/Gate 2 失败规则(权威源: dev-procedures-intent)
  - hotfix 加速路径详述(权威源: workflow.md + defect procedures)
  - critical hotfix 触发条件(与 L234 精简合并)
  - released 操作行为(权威源: workflow.md + release-procedures-close)
  - paused 操作细节(权威源: workflow.md + change-procedures-types)
- 保留所有字段定义、枚举值、模板结构、验证约束和独有使用注释

dev-procedures-defect.md:
- 3 处具体重复改为引用 cr-format.md(分支前缀×2 + hotfix 路径×1)

解决: IA-11 单一职责、IA-4 信息分类、IA-3 稳定-易变分离、IA-6 单一权威

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
变更记录新增 2 条(cr-format 职责纯净化 + architecture-details 合并)
近期会话新增本次会话条目,滚动删除最旧条目

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…erences 文件

info-architecture.md (156→93 行):
- IA-1/IA-2/IA-8/IA-10 四条原则已在其他始终加载文件完整覆盖,
  折叠为指针表(§1/§2/§8/§10 已覆盖原则),仅保留元规则
- IA-5 按需加载去重——description/分拆规则指向 plugin-dev-spec,
  仅保留 knowledge 被动加载和上下文预算两条独有约束
- 删除与 ia-principles.md 高冗余的示例/检测/预防合理化段落

product-architecture.md (142→255 行):
- 吸收 references/plugin-info-layers.md 六层架构定义和信息类型映射
- 吸收 references/architecture-details.md 完整内容(Skill-Agent 路由
  矩阵、Hook 映射、Agent 协作、Schema 依赖矩阵、信号系统三方同步)
- 删除两个 references 源文件

CLAUDE.md: 索引描述同步更新

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- §3 详细映射表(路由/Hook/Agent/Schema/信号)移至 references/product-arch-details.md(按需加载)
- §4 合规检测合并入 §0 合规检查清单(消除重复)
- §0 组件选择决策树替换为 project-structure.md §3 指针(消除近同构)
- §2 hooks/agents 行压缩为交叉引用
- CLAUDE.md 质量检查章节压缩为 dev-workflow.md §4 指针

始终加载:916 行 → 750 行(-18.1%),零信息丢失。

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Plugin settings.json 仅支持 "agent"(单数,字符串),现有 "agents"
(复数,含 per-agent model/memory)从未生效。实际配置已在各 agent
frontmatter 中正确设置。同步更新静态测试断言。

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…ence

- plugin-dev-spec: CSO "两类问题"压缩为 1 行引导语,规则表合并 4→3 条,
  Plugin 目录规则改指针至 project-structure.md,常见陷阱/Plugin 结构/
  Frontmatter 字段/plugin.json 规格迁出至 component-reference
- component-reference: 新增 Plugin 结构、plugin.json、SKILL.md Frontmatter、
  常见陷阱、官方 plugin-dev 工具章节,成为完整平台 API 参考
- CLAUDE.md: 开发规范索引 plugin-dev-spec 描述更新

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…gin-dev-spec.md → plugin-spec.md

文件重命名 + 全量引用更新(12 文件)。
历史记录文件(CHANGELOG/progress/prompt-notes)保留原名不改。

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- _schema/README.md fan-in 数据修正(checks-format 4→7, obj-format 1→2 等)
- obj-format.md / vision-format.md Consumers 补充实际 Skill 消费者
- biz-procedures-discover / init-procedures-full / release-procedures-create
  新增对 Schema 的显式引用,消除内联定义,遵循单一信息源原则
- product-architecture.md checks-format fan-in 同步修正
- 新增 TC-CR-15 测试:验证 README 消费者声明与 Skill 实际引用一致
- docs/scratch/prompt-notes.md 追加分析笔记

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- release-format.md 新增"派生模板"section 标注模板同步关系
- release-format.md 新增"运行时扩展 section"表,记录动态追加的 section 来源
- release.md 模板添加派生来源注释
- release procedures (changelog/deploy/rollback/verify) 新增对 release-format.md 的显式引用

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Schema 增强(对标 Keep a Changelog / SemVer / ITIL):
- 元信息区新增"摘要"字段(GitHub Releases Summary)
- Changelog 新增 Breaking Changes 置顶分组
- 验证清单后新增可选"迁移步骤" section(DB migration / 配置变更)

双源头消除(方案 B):
- 删除 templates/release.md(~95% 结构复制,未被任何 procedure 引用)
- release-format.md 移除"派生模板"声明
- changelog procedure 示例同步 Breaking Changes 分组

其他:
- incident-format.md 预留声明细化(Fan-in=0,roadmap 无排期)
- init-procedures-full.md OBJ 类型引导加溯源注(3/6→指向 Schema 完整列表)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- 删除 RELEASE_TEMPLATE 变量(模板文件已移除)
- TC-RSM-04/05 从测模板改为测 release-format.md Schema
- conftest TEMPLATE_FILES 移除 release.md

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
移除 biz-procedures-epic.md Step 5 和 biz-procedures-opportunity.md
Step 3 中的内联 markdown 代码块,改为 Schema 路径引用 + 创建时初始值说明。

epic 内联模板与 Schema 存在 3 处不同步(利益相关者缺失、依赖列缺失、
副 OBJ 缺失),根因是 Schema 增强后 procedure 未同步。消除内联模板后
Claude 创建文件时必须读取 Schema 获取完整结构,从源头杜绝漂移。

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
§2 禁止模式表新增:procedures 内联 Schema 已定义的数据格式
§0 合规检查清单新增:procedures 内联格式检查项

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- §1 引导语"三大模式"更正为"三大模式加一项隔离规则"(与实际 4 个子节一致)
- §2 knowledge 行补充 §1.4 交叉引用,避免读者遗漏子目录隔离规则
- 含前序 4 处增强:层级职责全景表、knowledge 子目录隔离、通信模式决策表、合规检查新增项

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- feedback-procedures-incident: 删除内联格式模板,改为引用 incident-format.md
- incident-format: 更新 Fan-in 注释(0→1),移除"预留"标注
- _schema/README: 更新 incident-format Fan-in 数据
- review-procedures-gate: 添加 checks-guide.md 权威源引用
- init-procedures-checks: 添加 checks-guide.md 编写指南引用
- product-architecture: 修正 checks-guide 消费者声明(pace-dev/test→pace-review/init)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
arch-team and others added 29 commits March 22, 2026 15:40
Step 1 产出新增"需求信号分层"——将用户模糊表述拆解为
L1 基础层 / L2 理解层 / L3 行动层的递进需求层次,
每层对应 BR 候选方向,直接引导 Step 2 头脑风暴。

灵感来源:eval baseline 的 5 层需求拆解模式表现优于
with-skill 的直接头脑风暴,将此分析模式固化到 procedures。

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
10 个子命令 + 空参引导全覆盖,56/56 assertions 通过:
- 方法论:subagent A/B 对比 + 触发准确性 5 轮优化
- 关键发现:Skill 核心价值 = 持久化 + 编号一致 + 多文件联动
- 类型规律:创建型/发现型 +50% > 精炼型 +40% > 分析型 +21%
- 已实施 7 项改进(3 commit),评估后决定不实施 3 项

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
三维审计驱动的 14 处高严重级修复,提升 Agent 可读性和执行确定性:

Batch 1 Hook HE-4 合规(5 文件 10 处):
- subagent-stop: 3 行分段输出合并为 1 条含 ACTION 的完整消息
- pulse-counter: 3 处"考虑/建议"→ ACTION + 具体步骤 + 替代路径
- sync-push: 2 处英文 Suggest/Consider → 中文 ACTION + 替代路径
- pace-dev-scope-check: 补充 ACTION 修复指令
- pace-review-scope-check: 补充 ACTION 修复指令

Batch 2 Procedures 歧义消除(2 文件 4 处):
- dev-procedures-intent: "必要时"→"≥2 歧义标记时";"Claude 判断"→"≥3 文件或跨模块依赖时";"M 可选"→具体触发条件
- review-procedures-gate: "必要时读取"→"单文件变更 >50 行时读取"

Batch 3 内联格式消除(1 文件):
- change-procedures-execution: 删除内联变更记录表模板,替换为 Schema 引用

Batch 4 Schema 裸引用修复(1 文件 19 处):
- insights-format: 所有裸 §12/§12.5/§15 补充 devpace-rules.md 前缀

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
新增两个测试文件,将 product-architecture.md §0 和 harness-engineering.md §4
中声明但未自动化的检测命令编码为 pytest 用例:

test_component_isolation.py (TC-CI-01~05):
- Schema 不反向引用 skills/rules/
- Hooks 不引用 knowledge/skills/rules/
- Agents 不引用任何组件路径
- Procedures 不跨 Skill 路径引用
- knowledge 子目录(_signals/_guides/_extraction)隔离

test_agent_legibility.py (TC-AL-01~03):
- Hook console 输出含 ACTION 修复指令
- Procedures 无歧义措辞(自行判断/酌情/适当时)
- Schema 字段名非缩写(含域术语白名单)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
扩展两个现有测试文件,将 ia-principles-details.md §5 和 plugin-spec.md CSO
声明的数值/质量约束编码为自动化检测:

test_frontmatter.py (+3 项, ×19 Skills 参数化):
- TC-FM-10: description ≤ 400 chars (IA-5 建议 300, 适配中文关键词密度)
- TC-FM-11: description 以 "Use when" 开头 (Auto-invoked 豁免)
- TC-FM-12: description 含 NOT-for 排除项 (warning 级别)

test_markdown_structure.py (+2 项):
- TC-MS-08: SKILL.md body ≤ 500 行
- TC-MS-09: 单个 procedures 文件 ≤ 500 行

当前捕获 3 个产品层真实违规待后续修复:
- pace-dev description 534 chars, pace-change 423 chars
- retro-procedures.md 621 lines

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…预算检测

pace-dev: 534 → 380 chars
- 合并 NOT-for 排除项为紧凑格式 (/pace-change, /pace-review, /pace-test, /pace-feedback)
- 精简 "帮我改" 歧义消除说明

pace-change: 423 → 320 chars
- 合并近义触发词:28 → 17 个(去除 "先不搞/放一放/补一个/还需要/改一下/改个需求/新增需求/恢复之前的/不要这个功能了/插入" 等冗余同义词)
- 保留每组语义的代表性词汇确保触发覆盖

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- TC-AL-01: action_re 从 `ACTION:|devpace:` 改为 `ACTION:` 仅匹配,
  消除 devpace: 标签即通过的漏检
- TC-AL-01b: 新增 Shell Hook echo 检测,带内容模式豁免列表
  (数据注入/确认型 echo 无需 ACTION)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
.mjs:
- pace-biz-scope-check: 追加 ACTION 修复指令
- pace-init-scope-check: 追加 ACTION 修复指令
- pace-dev-scope-check: 替换"如有意为之请忽略"为 ACTION 指令

.sh:
- session-start: 追加 ACTION 恢复步骤
- session-end: 替换"提醒/建议"为 ACTION 指令
- pre-compact: Action: → ACTION:(大小写修正)
- session-stop: 替换英文描述为中文 + ACTION 指令

Hook HE-4 合规率: 100%(.mjs 24/24 + .sh 14/14)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
§4 检测命令表新增 'Hook .sh 输出含修复指令' 行,
与 TC-AL-01b 自动化测试对齐。

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
新增/扩展三组测试,覆盖 P2 高阶 Harness 质量检查:

test_iron_rule_enforcement.py (TC-IR-01~04, 新建):
- IR-1~IR-5 全部出现在 §0 核心铁律索引中
- 关键铁律 (IR-1/IR-2) 有预防合理化文本 (IA-9)
- IR-2 有 Hook 执行机制 (pre-tool-use.mjs + hook-architecture.md)
- IR-1 有 scope-check + intent-detect 执行保障

test_eval_quality.py (TC-EQ-01~04, 新建, ×19 Skills 参数化):
- 总用例 ≥ 15, 正例 ≥ 8, 反例 ≥ 5
- 正负比例 40%-70% (防偏斜)

test_component_isolation.py +TC-CI-06 (扩展):
- Procedures 含类 Schema 字段表时须引用 _schema/ (IA-6 单一权威)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
消除 TC-FM-12 的 3 个 warnings:
- pace-learn: NOT for retro/theory
- pace-pulse: NOT for retro/status
- pace-trace: NOT for theory/retro

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- pace-learn: 新增 prune 子命令(--dry-run/--decay-only),解决衰减冻结和知识库清理两个问题
- pulse-procedures-gc: 新增第 4 项扫描(知识库衰减检测),ACTION 委托 pace-learn 执行(IA-6 合规)
- learn-procedures: 补齐 §3.5 生命周期维护搭便车(衰减+归档执行步骤)
- evals: pace-pulse +2 场景(gc-scan-stale-docs, gc-scan-decay-detection);pace-learn 更新 prune assertions

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
新增 skill-eval.mjs 替换 intent-detect.mjs 处理 UserPromptSubmit 事件。
基于 Scott Spence 的 Commitment Mechanism 研究,A+B 组合策略:
- Path A:19 Skill 关键词高置信匹配,唯一命中时直接路由建议
- Path B:零匹配/多重匹配时注入 forced eval 指令,强制显式评估
- 歧义词独立管理,三道门控(未初始化/slash 命令/技术操作跳过)
- 同步执行(移除 async),确保评估指令在 Claude 响应前注入

附带调研报告 skill-eval-ecosystem-2026-03-21.md,覆盖社区评估方法全景。

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
记录 GC 机制从 3/5 到 4/5 的优化过程:现状诊断、方案演进(200→108→54 行)、
四项关键设计决策(IA-6 委托模式、prune 子命令选型、非问题排除、阈值不编码),
以及反思方法论(追问模式 + 每轮砍 50%)。

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
快照最后更新日期 + 变更记录(GC 4 项 P0 改动详情)+ 近期会话(滚动保留 5 条)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
新增 pace-help Skill,作为 devpace 使用帮助的统一入口(HOW 维度):
- 5 个子命令:commands / <command-name> / quickstart / faq / (空)
- 动态读取 SKILL.md 生成命令列表和用法详解,零维护成本
- 接管 rules §3 命令发现,替代硬编码命令列表
- HOW/WHY/WHAT 三角边界:pace-help(HOW) / pace-theory(WHY) / pace-next(WHAT)
- 触发评估 20/20 通过,正触发 100%,误触发 0%

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
## 目录重构 (v0.2.0 → v0.3.0)
- 扁平结构拆分为 5 个子包: core/ trigger/ behavior/ regression/ review/
- 8 个文件迁移 + import 路径更新
- shim.py 向后兼容保持

## 新增: 行为评估管线 (behavior/)
- execute.py: Agent SDK 行为执行引擎 + BehavioralResult
- grader.py: 混合三级评分 (G1 程序化 / G2 正则 / G3 LLM)
- benchmark.py: with/without plugin 基线对照
- comparator.py: 盲 A/B 版本比较
- 24 个 grader 单元测试
- 7 个 env fixture (ENV-DEV-A ~ G) + setup-fixtures.sh

## 新增: 可视化+反馈体系 (review/)
- report.py: 静态 HTML 仪表盘 (单文件, 无外部依赖)
- viewer.py: 交互式 eval server (http.server, 零依赖)
- feedback.py: 结构化反馈 notes.jsonl + 解决追踪
- analyzer.py: 断言区分度分析 (5 类问题检测)

## CLI 集成
- 13 个子命令 (5 已有 + 8 新增)
- Makefile 15 个新增目标 + eval-deep 复合目标

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- trigger/apply.py: 消除与 core/skill_io.py 的重复逻辑,
  改为 import read_description/replace_description
- validate.yml: 新增 3 个 CI job:
  - eval-trigger-smoke: PR 变更 Skill 时冒烟触发检查 (~$0.10)
  - eval-behavior-smoke: G1/G2 程序化评分,零 API 成本
  - eval-deep: 手动触发全量深度评估

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- 根因: 硬编码 claude-haiku-4-5-20251001 在 Bedrock 环境报
  'The provided model identifier is invalid'
- 修复: _get_llm_client() 检测 Bedrock vs 直连 API,
  自动选择正确的模型 ID 格式:
  - 直连: claude-haiku-4-5-20251001
  - Bedrock: us.anthropic.claude-haiku-4-5-20251001-v1:0
- 支持 llm_model 参数覆盖(向后兼容)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
新增 eval/trigger/eval_hooks.py,包含两个 UserPromptSubmit hook:
- slash_command_hook: 拦截 /pace-dev 斜杠命令,注入 Skill 调用指令
- forced_eval_hook: 承诺机制,强制 Claude 评估是否需要 devpace Skill

两种评估模式:
- 基准模式 (默认): 纯 description 触发率,不加 hook
- E2E 模式 (--with-hooks): 模拟真实部署条件

冒烟对比 (pace-dev, 5 queries):
  description-only: 3/5 (60%)
  with-hooks e2e:   4/5 (80%) — forced_eval 修复了 1 条欠触发

CLI: python3 -m eval trigger --skill pace-dev --with-hooks
Make: make eval-trigger-e2e S=pace-dev

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
根因: UserPromptSubmit hook 在 Agent SDK query() 中不触发——
prompt 是 API 参数,不是"用户提交"事件。

修复方案(三机制组合):
1. system_prompt 注入: FORCED_EVAL_SYSTEM_PROMPT 指示 Claude
   在使用代码工具前先评估 devpace skill
2. slash 命令重写: /pace-dev → 自然语言 Skill 调用指令
3. PreToolUse hook: 拦截首次非 Skill 工具调用,block + 提醒

冒烟对比 (pace-dev, 5 queries):
  description-only: 3/5 (60%)
  with-hooks e2e:   5/5 (100%) ← 全部通过

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
pace-dev with-hooks e2e 全量结果:
  正面: 18/18 (100%)  负面: 17/17 (100%)  总计: 35/35 (100%)

对比 description-only:
  正面: 3/18 (17%)   负面: 17/17 (100%)  总计: 20/35 (57%)

三机制效果:
  slash 命令重写: +3 (修复 /pace-dev 系列)
  system_prompt 注入: +9 (修复自然语言欠触发)
  PreToolUse 拦截: 兜底保障
  假正面: 0 (零误触发)

附带: dashboard.html, notes.jsonl, regress report

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
新增 §6.1 实测数据节:
- 双轨触发率对比表 (description-only 57% vs with-hooks 100%)
- 三机制效果拆解 (slash 重写 +3, system_prompt +9, PreToolUse 兜底)
- 关键发现 (SDK hook 兼容性, 零假正面, 欠触发根因)
- 两种模式定位说明

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- grader.py: 将 G1/G2 检查逻辑抽取到 _grader_checks.py,
  LLM 客户端抽取到 core/llm_client.py,减少 500+ 行
- benchmark.py: 复用 run_behavioral_eval 消除重复执行逻辑,
  改用 asyncio.gather 并发运行 with/without plugin 测试
- 其他模块: 适配重构接口,清理 imports

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
覆盖 12 个使用场景 (A-L)、六层评估栈、双轨触发模式、
三级评分引擎、成本梯度、数据格式、CI 集成、命令速查表、
故障排除。从架构参考升级为实操指南。

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
主要变更:
- fix: report.py 行为 tab CSS class 字段名 "pass" → "passed"(bug)
- 集中 ensure_sdk_env() 替换 3 处重复 os.environ.pop("CLAUDECODE")
- 合并 grader.py 两个近似 fallback 函数为统一 _grade_keyword_fallback
- 缓存 transcript join 避免每个 assertion 重复字符串拼接
- 参数化 _grader_checks.py 6 个相同模式的 CR 字段检查为工厂函数
- 提取 cli.py _load_eval_cases() 替换 3 处重复的 evals.json 加载
- report.py 4 个独立收集函数合并为单次目录遍历 _collect_all_results
- 公开 resolve_fixture_dir 修复跨模块导入私有函数
- 清理 shim.py 无人使用的 re-exports、移除未使用导入

净减少 52 行代码,109 个测试全部通过。

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
retro-procedures.md 621 行超出 token 预算限制(max 500)。
按分区拆分:
- retro-procedures.md(172 行):报告格式 + 角色适配 + 迭代交接
- retro-procedures-dimensions.md(462 行):条件分析段 + 知识管理

SKILL.md 路由表同步更新,完整回顾加载两个文件。

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@arch-team arch-team merged commit 298c430 into main Mar 23, 2026
8 of 10 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant